package com.naiterui.ehp.bp.domain;

import static javax.persistence.GenerationType.IDENTITY;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "patient_reservation")
public class PatientReservation implements Serializable {

    // 订单状态（1：待付款，2：待咨询，3：已取消，4：已完成）

    /**
     * 待付款
     */
    public static final int STATUS_OBLIGATION = 1;

    /**
     * 待咨询
     */
    public static final int STATUS_NOT_CONSULTING = 2;

    /**
     * 取消
     */
    public static final int STATUS_CANCEL = 3;
    /**
     * 已完成
     */
    public static final int STATUS_COMPLETE = 4;

    /**
     * 字段或域定义：<code>serialVersionUID</code>
     */
    private static final long serialVersionUID = 3625611386988830725L;

    private Long id;

    private Long doctorId;

    private Long patientId;

    private Long startAt;

    private Date createdAt;

    private Integer status;

    private Integer gender;

    private String context;

    private Integer age;

    private String orderSn;

    private String payOrderSn;

    private Integer cancelType;

    private String cancelDetail;

    private Date cancelTime;

    private Date changedAt;

    private Integer charge;

    private Long period;

    private Integer cancelCode;

    @Id
    @GeneratedValue(strategy = IDENTITY)
    @Column(name = "id", unique = true, nullable = false)
    public Long getId() {
        return this.id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    @Column(name = "doctor_id")
    public Long getDoctorId() {
        return this.doctorId;
    }

    public void setDoctorId(Long doctorId) {
        this.doctorId = doctorId;
    }

    @Column(name = "patient_id")
    public Long getPatientId() {
        return this.patientId;
    }

    public void setPatientId(Long patientId) {
        this.patientId = patientId;
    }

    @Column(name = "start_at")
    public Long getStartAt() {
        return this.startAt;
    }

    public void setStartAt(Long startAt) {
        this.startAt = startAt;
    }

    @Column(name = "created_at")
    public Date getCreatedAt() {
        return this.createdAt;
    }

    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    @Column(name = "status")
    public Integer getStatus() {
        return this.status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    @Column(name = "gender")
    public Integer getGender() {
        return this.gender;
    }

    public void setGender(Integer gender) {
        this.gender = gender;
    }

    @Column(name = "context")
    public String getContext() {
        return this.context;
    }

    public void setContext(String context) {
        this.context = context;
    }

    @Column(name = "age")
    public Integer getAge() {
        return this.age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Column(name = "order_sn")
    public String getOrderSn() {
        return this.orderSn;
    }

    public void setOrderSn(String orderSn) {
        this.orderSn = orderSn;
    }

    @Column(name = "pay_order_sn")
    public String getPayOrderSn() {
        return this.payOrderSn;
    }

    public void setPayOrderSn(String payOrderSn) {
        this.payOrderSn = payOrderSn;
    }

    @Column(name = "cancel_type")
    public Integer getCancelType() {
        return this.cancelType;
    }

    public void setCancelType(Integer cancelType) {
        this.cancelType = cancelType;
    }

    @Column(name = "cancel_detail")
    public String getCancelDetail() {
        return this.cancelDetail;
    }

    public void setCancelDetail(String cancelDetail) {
        this.cancelDetail = cancelDetail;
    }

    @Column(name = "cancel_time")
    public Date getCancelTime() {
        return this.cancelTime;
    }

    public void setCancelTime(Date cancelTime) {
        this.cancelTime = cancelTime;
    }

    @Column(name = "changed_at")
    public Date getChangedAt() {
        return this.changedAt;
    }

    public void setChangedAt(Date changedAt) {
        this.changedAt = changedAt;
    }

    @Column(name = "charge")
    public Integer getCharge() {
        return this.charge;
    }

    public void setCharge(Integer charge) {
        this.charge = charge;
    }

    @Column(name = "period")
    public Long getPeriod() {
        return this.period;
    }

    public void setPeriod(Long period) {
        this.period = period;
    }

    @Column(name = "cancel_code")
    public Integer getCancelCode() {
        return this.cancelCode;
    }

    public void setCancelCode(Integer cancelCode) {
        this.cancelCode = cancelCode;
    }

}
